﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using ConnectToDatabase;
using ConnectToDatabase.Model;

namespace QLGiayDep.Forms
{
    /// <summary>
    /// Interaction logic for WinKhuyenMai.xaml
    /// </summary>
    public partial class WinKhuyenMai : Window
    {
        SetID setID;
        InsertDB insertDB;
        SelectDB selectDB;
        OtherHandle otherHandle = new OtherHandle();
        DauSanPham dauSanPham = new DauSanPham();
        KhuyenMai khuyenMai = new KhuyenMai();
        string URL;
        public WinKhuyenMai(string _URL)
        {
            InitializeComponent();
            URL = _URL;
            setID = (SetID)Activator.GetObject(typeof(SetID), URL + "SETID_OBJECT");
            selectDB = (SelectDB)Activator.GetObject(typeof(SelectDB), URL + "SELECTDB_OBJECT");
            insertDB = (InsertDB)Activator.GetObject(typeof(InsertDB), URL + "INSERTDB_OBJECT");
            txtMaKhuyenMai.Text = setID.GenerateMaKhuyenMai();
        }

        private void btnThemSPKM_winthem_Click(object sender, RoutedEventArgs e)
        {
            if (txtMaDauSP.Text == "")
                MessageBox.Show("Chưa chọn đầu sản phẩm khuyến mãi", "Thông Báo");
            if (txtNoiDungKM.Text == "" && txtGiamGia.Text == "")
                MessageBox.Show("Chưa chọn nội dung khuyến mãi \nhoặc giảm giá bao nhiêu phần trăm", "Thông Báo");
            if (dtmTGianBatDau.SelectedDate == null)
                MessageBox.Show("Chưa chọn ngày bắt đầu khuyến mãi", "Thông Báo");
            if (dtmTGianKetThuc.SelectedDate == null)
                MessageBox.Show("Chưa chọn ngày kết thúc khuyến mãi", "Thông Báo");
            else
            {
                dauSanPham = selectDB.SelectAllDauSanPham(txtMaDauSP.Text);

                DateTime dtStart = DateTime.Parse(dtmTGianBatDau.SelectedDate.ToString());
                DateTime dtEnd = DateTime.Parse(dtmTGianKetThuc.SelectedDate.ToString());
                int result = DateTime.Compare(dtStart, dtEnd);

                int countKMTest = selectDB.SelectAllKhuyenMai_KiemTraKhuyenMai(txtMaDauSP.Text, dtStart.ToString("yyyy/MM/dd"), dtEnd.ToString("yyyy/MM/dd")).Count;
                if (result > 0)
                    MessageBox.Show("Ngày kết thúc phải sau ngày bắt đầu khuyến mãi", "Thông Báo");
                else
                {
                    if (countKMTest != 0)
                        MessageBox.Show("Kiểm tra lại khoảng thời gian khuyến mãi \n Sản phẩm đã được khuyến mãi trong khoảng thời gian này", "Thông Báo");
                    else
                    {
                        int m_iValueTemp;
                        bool result1 = int.TryParse(txtGiamGia.Text, out m_iValueTemp);
                        if (result1 == false)
                            m_iValueTemp = 0;
                        else
                            if (m_iValueTemp > 100)
                            {
                                MessageBox.Show("Khuyến mãi 100%", "Thông Báo");
                                txtGiamGia.Focus();
                            }

                        int kt = insertDB.InsertKhuyenMai(txtMaKhuyenMai.Text, txtMaDauSP.Text, txtNoiDungKM.Text, int.Parse(txtGiamGia.Text), dtStart.ToString("yyyy/MM/dd"), dtEnd.ToString("yyyy/MM/dd"));
                        if (kt == -1)
                            MessageBox.Show("Thêm khuyến mãi thất bại", "Lỗi");
                        else
                        {
                            MessageBox.Show("Thêm khuyến mãi thành công", "Thông Báo");
                            txtMaKhuyenMai.Text = setID.GenerateMaKhuyenMai();
                            txtMaDauSP.Clear();
                            txtNoiDungKM.Clear();
                            txtGiamGia.Clear();
                            dtmTGianKetThuc.SelectedDate = null;
                            dtmTGianBatDau.SelectedDate = null;
                        }
                    }
                }
            }
        }

        private void btnThoatSPKM_winthem_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void txtGiamGia_TextChanged(object sender, TextChangedEventArgs e)
        {
            otherHandle.IsNumber(txtGiamGia);
        }

        private void btnKiemTraDauSP_Click(object sender, RoutedEventArgs e)
        {
            if (txtMaDauSP.Text == "")
                MessageBox.Show("Chưa nhập mã đầu sản phẩm", "Thông Báo");
            else
            {
                if (selectDB.SelectAllDauSanPham(txtMaDauSP.Text) == null)
                    MessageBox.Show("Kiểm tra lại mã đầu sản phẩm");
                else
                {
                    WinThemDauSP m_wDauSP = new WinThemDauSP(txtMaDauSP.Text, URL);
                    m_wDauSP.btnThemDauSP.Visibility = Visibility.Collapsed;
                    m_wDauSP.GroupDauSP.IsEnabled = false;
                    m_wDauSP.Show();
                }
            }
        }

    }
}
